Given the root
of a binary tree, the level of its root is 1
, the level of its children is 2
, and so on.
Return the smallest level X
such that the sum of all the values of nodes at level X
is maximal.
Input: [1,7,0,7,-8,null,null] Output: 2 Explanation: Level 1 sum = 1. Level 2 sum = 7 + 0 = 7. Level 3 sum = 7 + -8 = -1. So we return the level with the maximum sum which is level 2.
- The number of nodes in the given tree is between
1
and10^4
. -10^5 <= node.val <= 10^5
# Definition for a binary tree node.# class TreeNode:# def __init__(self, val=0, left=None, right=None):# self.val = val# self.left = left# self.right = rightclassSolution: defmaxLevelSum(self, root: TreeNode) ->int: curr_level= [root] max_sum=root.valx=1ret=1whilecurr_level: curr_sum=sum(n.valfornincurr_level) ifcurr_sum>max_sum: max_sum=curr_sumret=xcurr_level= [cfornincurr_levelforcin [n.left, n.right] ifc] x+=1returnret